/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.ejb.modelo;

import java.awt.Image;
import java.io.File;
import java.util.ArrayList;

/**
 * Clase que representa un nivel del juego. En ella irán los eventos que soporta, el escenario, etc.
 * @author Hobbes
 *
 */
public class Nivel {
        
        public enum TipoNivel{
                Inicio, Medio, Fin, GameOver, Creditos
        }

        ArrayList<Evento> eventos;              //Por ahora los eventos solo son de salto de nivel
        Image escenario;                                //Esta imagen representa el escenario sobre el que tiene lugar el nivel
        TipoNivel tipo;                                 //Representa si es un nivel de inicio, intermedio o final.
        
        String nombre;                                  //Nombre para el nivel creado.
        int numero;                                             //indica el número de Nivel.
        File musica;                                    //Se le puede poner una música especial a cada nivel.
        
        public Nivel(TipoNivel tipo){
                eventos=new ArrayList<Evento>();
                this.tipo=tipo;
                nombre="";
        }

        public Image getEscenario() {
                return escenario;
        }

        public void setEscenario(Image escenario) {
                this.escenario = escenario;
        }

        public String getNombre() {
                return nombre;
        }

        public void setNombre(String nombre) {
                this.nombre = nombre;
        }

        public int getNumero() {
                return numero;
        }

        public void setNumero(int numero) {
                if(nombre.compareTo("")==0){
                        nombre="Nivel "+numero;
                }
                this.numero = numero;
        }

        public TipoNivel getTipo() {
                return tipo;
        }
        
        public void setTipo(TipoNivel t){
                tipo=t;
        }
        
        public int numEventos(){
                return eventos.size();
        }
        
        public void anadirEvento(Evento e){
                eventos.add(e);
        }
        
        public void eliminarEvento(Evento e){
                eventos.remove(e);
        }
        
        public Evento getEvento(int i){
                return eventos.get(i);
        }

        public File getMusica() {
                return musica;
        }

        public void setMusica(File musica) {
                this.musica = musica;
        }

}